package com.taoxi.good.service.Impl;

import com.taoxi.common.utils.DateUtils;
import com.taoxi.good.domain.Goods;
import com.taoxi.good.mapper.GoodsMapper;
import com.taoxi.good.service.IGoodsService;
import com.taoxi.shops.mapper.StoreMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 商品管理Service业务层处理
 *
 * @author taoxi
 * @date 2024-10-28
 */
@Service
public class GoodsServiceImpl implements IGoodsService {
    @Autowired
    private GoodsMapper goodsMapper;
    @Autowired
    private StoreMapper storeMapper;

    /**
     * 查询商品管理
     *
     * @param id 商品管理主键
     * @return 商品管理
     */
    @Override
    public Goods selectGoodsById(Long id) {
        Map<String, Object> params = new HashMap<>();
        params.put("id", id);
        String suppleType = goodsMapper.typeById(id).getSuppleType();
        params.put("suppleType", suppleType);
        return goodsMapper.selectGoodsById(params);
    }

    /**
     * 查询商品管理列表
     *
     * @param goods 商品管理
     * @return 商品管理
     */
    @Override
    public List<Goods> selectGoodsList(Goods goods) {
        return goodsMapper.selectGoodsList(goods);
    }

    /**
     * 新增商品管理
     *
     * @param goods 商品管理
     * @return 结果
     */
    @Override
    public int insertGoods(Goods goods) {
        goods.setCreateTime(DateUtils.getNowDate());
        return goodsMapper.insertGoods(goods);
    }

    /**
     * 修改商品管理
     *
     * @param goods 商品管理
     * @return 结果
     */
    @Override
    public int updateGoods(Goods goods) {
        goods.setUpdateTime(DateUtils.getNowDate());
        return goodsMapper.updateGoods(goods);
    }

    /**
     * 批量删除商品管理
     *
     * @param ids 需要删除的商品管理主键
     * @return 结果
     */
    @Override
    public int deleteGoodsByIds(Long[] ids) {
        return goodsMapper.deleteGoodsByIds(ids);
    }

    /**
     * 删除商品管理信息
     *
     * @param id 商品管理主键
     * @return 结果
     */
    @Override
    public int deleteGoodsById(Long id) {
        return goodsMapper.deleteGoodsById(id);
    }

    /**
     * 查询商品店铺信息
     *
     * @param id 商品管理主键
     * @return 结果
     */
    @Override
    public Goods typeById(Long id) {
        return goodsMapper.typeById(id);
    }

    @Override
    public List<Goods> selectTopGoods(Goods goods) {
        return goodsMapper.selectTop(goods);
    }

    @Override
    public List<Goods> selectSuppleGoods(Long id, String type) {
        return goodsMapper.selectSuppleGoods(id, type);
    }

//    @Override
//    public List<Store> getSalesSort(Store store) {
//        return storeMapper.getSalesSort(store);
//    }

}
